using System;
using System.Collections.Generic;
using System.Text;

namespace MakeIT.SGI.ERP.Entidades
{
	public class LogradouroVO
	{
		// Impedir o uso de new para esta classe
		protected LogradouroVO() { }

		// Cria uma instancia desta classe
		public static LogradouroVO CreateVO()
		{
			LogradouroVO logradouro = new LogradouroVO();
			logradouro.idBairroVO = BairroVO.CreateVO();
			logradouro.idLogradouroTipoVO = LogradourotipoVO.CreateVO();
			return logradouro;
		}
		public static LogradouroVO CreateVO(int idLogradouro, string logradouro)
		{
			LogradouroVO obj = CreateVO();
			obj.idLogradouro = idLogradouro;
			obj.logradouro = logradouro;
			return obj;
		}
		// Descrição amigavel do conteudo deste objeto
		public override string ToString()
		{
			return (idLogradouro!=null?idLogradouro.ToString():"") + "-" + (logradouro!=null?logradouro.ToString():"");
		}
		// Retorna PK concatenada com ";"
		public string PKString
		{
			get { return idLogradouro.ToString(); }
		}

		#region MEMBROS DA CLASSE
		public int idLogradouro
		{
			get { return this._idLogradouro; }
			set { this._idLogradouro = value; }
		}
		private int _idLogradouro;
        public string uf
        {
            get { return this._uf; }
            set { this._uf = value; }
        }
        private string _uf;
        public string cidade
        {
            get { return this._cidade; }
            set { this._cidade = value; }
        }
        private string _cidade;
		public int idBairro
		{
			get { return this._idBairro; }
			set { this._idBairro = value; 
			      if(value!=null) this.idBairroVO.idBairro = (int)value; }
		}
		private int _idBairro;
		public string cEP
		{
			get { return this._cEP; }
			set { this._cEP = value; }
		}
		private string _cEP;
		public int idLogradouroTipo
		{
			get { return this._idLogradouroTipo; }
			set { this._idLogradouroTipo = value; 
			      if(value!=null) this.idLogradouroTipoVO.idlogradouroTipo = (int)value; }
		}
		private int _idLogradouroTipo;
		public string logradouro
		{
			get { return this._logradouro; }
			set { this._logradouro = value; }
		}
		private string _logradouro;
		public DateTime cadastro
		{
			get { return this._Cadastro; }
			set { this._Cadastro = value; }
		}
		private DateTime _Cadastro;
		public string cadastradoPor
		{
			get { return this._CadastradoPor; }
			set { this._CadastradoPor = value; }
		}
		private string _CadastradoPor;
		public DateTime edicao
		{
			get { return this._Edicao; }
			set { this._Edicao = value; }
		}
		private DateTime _Edicao;
		public string editadoPor
		{
			get { return this._EditadoPor; }
			set { this._EditadoPor = value; }
		}
		private string _EditadoPor;
		public BairroVO idBairroVO
		{
			get { return this._idBairroVO; }
			set { this._idBairroVO = value; }
		}
		private BairroVO _idBairroVO;
		public LogradourotipoVO idLogradouroTipoVO
		{
			get { return this._idLogradouroTipoVO; }
			set { this._idLogradouroTipoVO = value; }
		}
		private LogradourotipoVO _idLogradouroTipoVO;
		#endregion
	}
}
